//
//  StateMachine.h
//  MusicAnalyzer
//
//  Created by jiro on 12/03/30.
//  Copyright 2012 jiro music. All rights reserved.
//

#import <Cocoa/Cocoa.h>

#import "StateType.h"
#import "Event/AllEvents.h"
#import "../CommandExecutionSystem.h"
#import "../../Common/CocoaExceptionSystem.h"
#import "StateTransitionInfo.h"
#import "StateMachine.h"

@interface State : NSObject
{
	StateType stateType;
	
	StateMachine* SM;
}

@property ( assign ) StateType stateType;

- (Command*) commandToKeyEvent: (AppKeyEvent*) e returnTransitInfo: ( StateTransitionInfo* ) info;

- (Command*) commandToMouseEvent: (AppMouseEvent*) e returnTransitInfo: ( StateTransitionInfo* ) info;

- (Command*) commandMidiEvent: (AppMidiEvent*) e returnTransitInfo: ( StateTransitionInfo* ) info;

@end
